﻿#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QMouseEvent>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //给label安装事件过滤器
    //步骤1 安装事件过滤器
    ui->label->installEventFilter(this);

}

//步骤2 重写eventfilter事件
bool Widget::eventFilter(QObject * obj , QEvent * e)
{
    if(obj == ui->label)
    {
        QMouseEvent *ev = static_cast<QMouseEvent *>(e);
        if( ev->button() == Qt::LeftButton)
        {
            QString str = QString("事件过滤器鼠标按下了！x= %1  y= %2 x= %3  y= %4 ").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
            qDebug() << str;


            return  true;//true代表用户自己处理这个事件，不向下分发
        }

        //其他事件 交给父类处理 默认处理
        return QWidget::eventFilter(obj,e);
    }
}

Widget::~Widget()
{
    delete ui;
}
